Method and system for transferring web browser data between web browsers

ABSTRACT

In one embodiment, a method for transferring web browser data between web browsers includes collecting browser data pertaining to a first web browser, packaging the browser data into an intermediate format, and storing the packaged data for a subsequent import into a second web browser.

FIELD OF INVENTION

The field of invention relates generally to transferringapplication-specific data between applications, and more particularly,to transferring web browser data between web browsers.

BACKGROUND

A web browser is an application program that provides a way to look atand interact with information on the Internet. A web browser typicallyuses the Hypertext Transfer Protocol (HTTP) to make requests of webservers throughout the Internet on behalf of the browser user. Known webbrowsers include, for example, Microsoft® Internet Explorer (IE),Netscape® Navigator, Opera browser, Firefox browser and Lynx browser.

Each web browser is associated with a set of browser data that includes,for example, bookmarks, security settings, general settings, links topages visited by a user, a home page, cookie settings, user interface(UI) elements (e.g., toolbar positions and visibility), etc. A user maydecide to switch to a different web browser. For example, the user mayswitch to a different web browser installed on the same or differentcomputer, or to a different instance of the same web browser installedon the same or different computer. Currently, when a user switches to anew IE browser, the user can transfer bookmarks from an old IE browserto the new IE browser. However, the user has to manually enter the restof the browser data for the new web browser. In addition, if the two webbrowsers are of different types (e.g., an old web browser is NetscapeNavigator and a new web browser is Microsoft IE), the user may not beable to transfer any of the old web browser data to the new browser.

Thus, what is desired is a method or system that helps overcome one ormore of the above-described limitations.

SUMMARY

In one embodiment, a method for transferring web browser data betweenweb browsers includes collecting browser data pertaining to a first webbrowser, packaging the browser data into an intermediate format, andstoring the packaged data for a subsequent import into a second webbrowser.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which likereferences indicate similar elements and in which:

FIG. 1 presents a diagram illustrating an overview of one embodiment ofthe present invention;

FIG. 2 is a block diagram illustrating an architecture in which oneembodiment of the present invention may be implemented;

FIG. 3 is a flow diagram of one embodiment of a method for exporting webbrowser data;

FIG. 4 presents a flow diagram of one embodiment of a method forimporting web browser data; and

FIG. 5 is a block diagram of one embodiment of a computer system.

DETAILED DESCRIPTION

A method and system for transferring web browser data between webbrowsers is described. The web browser data includes various propertysettings specific to a current instance of the web browser by thecurrent instance of the web browser. For example, the web browser datamay include bookmarks, security settings, general settings, links todocuments accessed by a user, information specifying frequency and timeswhen the documents were accessed (e.g., to determine which links shouldbe displayed in the “already-visited” color, or to power the historypane), a home page, cookie settings, user interface (UI) elements,intermediate files maintained by the web browser, profile/autofill data(e.g., information maintained by a browser for “My Profile” option of abusiness card tool), password data (e.g., a subset of filled in forms),input history data (e.g., a list of data filled in by a user for textboxes and other web forms encountered by the user), popup blocker andwhitelisted sites data, data identifying language and character set,accessibility data, etc. UI elements associated with the web browser mayspecify, for example, visibility of toolbars in the browser windows,positioning of toolbars within the browser window, visibility of buttonson a toolbar, positioning of buttons on the toolbar, color settings,background images, etc. Intermediate files maintained by the web browsermay include, for example, cached documents viewed by the user, plug-inexecutable files (e.g., plug-ins for displaying different types of audioand video messages), browsing history records, and various temporaryfiles used by the web browser.

In one embodiment, a user may request to export web browser datapertaining to the current web browser. For example, the user may issuesuch a request by pressing an export settings button on a toolbar in thebrowser window. In response to the user request, the web browser data isexported from the current web browser, packaged into an intermediateformat and stored in a designated data store. The designated data storemay be on the same computer as the present web browser or on a servercoupled to this computer via a network.

Subsequently, when the user issues a request to import the web browserdata onto a new web browser, the stored web browser data is retrievedand applied to the new web browser. The new web browser may be adifferent web browser installed on the same or different computer. Forexample, the old web browser may be Microsoft®Internet Explorer (IE) andthe new web browser may be Netscape® Navigator. Alternatively, the newweb browser may be a different instance of the same web browser (e.g.,the IE browser) installed on the same or different computer.

FIG. 1 presents a diagram illustrating an overview of one embodiment ofthe present invention.

Referring to FIG. 1, a browser window 102 controlled by a first webbrowser includes an export settings button 108. When a user presses thebutton 108, the web browser data pertaining to the first web browser 102is gathered, packaged into an intermediate format, and stored in a datastore 106. The data store 106 may be on the same computer as the firstweb browser or on a server coupled to this computer via a network (e.g.,a public network or a local area network).

A browser window 104 is controlled by a second web browser. The secondweb browser may be a different web browser installed on the same ordifferent computer, or a different instance of the same web browserinstalled on the same or different computer. The browser window 104includes an import settings button 10. When the user presses the button10, the web browser data pertaining to the first web browser isretrieved from the data store 106 and applied to the second web browser.In one embodiment, if the second web browser supports only a subset ofthe web browser data pertaining to the first web browser, only the webbrowser data supported by the second web browser is imported onto thesecond web browser.

It should be noted that the techniques described herein are not limitedto web browser applications and can be used with various otherapplications. For example, these techniques may be used to transfersettings between different instances of Microsoft Word or MicrosoftPowerPoint, or to transfer settings from Microsoft Word to MicrosoftPowerPoint and vice versa. In another example, these techniques may beused to transfer settings between a web browser and some otherapplication (e.g., Microsoft Word).

In addition, references throughout this specification to “oneembodiment” or “an embodiment” indicate that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment. Thus, the appearances of thephrases “in one embodiment” or “in an embodiment” in various placesthroughout this specification are not necessarily all referring to thesame embodiment.

Further, the term “document” as used herein broadly refers to variousitems, such as files, directories, or other data or information that maybe stored, received, sent, created or otherwise processed by one or morecomputing devices. For example, a document may include any file createdon a computing system. The term file as used herein includes acollection of bytes or bits stored as an individual entity. For example,a file may be a binary file, a text file, or a combination thereof, suchas a word processor file, a data file, a spreadsheet, a workbook, animage, a drawing, an audio file, a video file, an audio/visual file, amultimedia file, an archive file, a batch file, a source file, an objectfile, or an executable program. The term file may also refer to a filesystem object which is accessed as though the object were a file. Adocument may be linked to one or more other documents, such as via ahyperlink. A document may include a web page, such as a file coded in amarkup language (e.g. hypertext markup language (HTML) or extensiblemarkup language (XML)), a file coded in a scripting language (e.g.JavaScript, Active Server Pages (ASP), or Perl), or a file viewed in aweb browser (e.g. a portable document format (PDF), an image file ortext file). A document may reside on a single system, or may be accessedby one or more systems via a network, e.g. an Intranet or the Internet.

Furthermore, the particular features, structures, or characteristics maybe combined in any suitable manner in one or more embodiments.

System Architecture

FIG. 2 is a block diagram illustrating an architecture 200 in which oneembodiment of the present invention may be implemented. The architecture200 includes client devices 208 and 220, a server 202, and a network206.

The client devices 208 and 220 may be personal computers (PCs), wirelesstelephones, palm-sized computing devices, personal digital assistants(PDAs), consumer electronic devices, etc. The client devices 208 and 220are coupled to the server 202 via the network 206, which may be a publicnetwork (e.g., Internet) or a private network (e.g., Ethernet or a localarea Network (LAN)).

The client devices 208 and 220 host web browsers 210 and 222respectively. The web browsers 210 and 222 may be of the same type(e.g., the IE browser) or of different types (e.g., the IE browser andthe Firefox browser). The client devices 208 and 220 also includebrowser settings modules 212 and 224 respectively. The browser settingsmodule 212 or 224 may be a part of the corresponding web browser 210 or220, or a part of some other application (e.g., Google® Firefox Toolbar,Google® Toolbar for Windows, etc.) running on the corresponding clientdevice 208 or 220, or an independent application running on thecorresponding client device 208 or 220. In one embodiment, the module212 is part of a first instance of a specific application (e.g., IEbrowser or Google Toolbar), and the module 224 is part of a secondinstance of the same application. Alternatively, the module 212 may be apart of one application (e.g., IE browser) and the module 224 may be apart of another application (e.g., Yahoo Toolbar).

The browser settings modules 212 and 224 communicate with the server202. In one embodiment, both modules 212 and 224 communicate with theserver 202 using the same network protocol (e.g., hypertext transferprotocol (HTTP). Alternatively, the modules 212 and 224 communicate withthe server 202 using different network protocols (e.g., HTTP and filetransfer protocol (FTP)).

In one embodiment, each of the browser settings modules 212 and 220includes an exporter (i.e., exporters 214 and 226) and an importer(e.g., importers 216 and 228). Alternatively, the browser settingsmodule 212 or 220 may only include either the exporter or the importerbut not both of them.

The exporter 214 or 226 is responsible for collecting web browser datapertaining to the web browser 210 or 222 respectively, packaging thecollected data into a canonical format, and sending the web browser datain the canonical format to the server 202, which then stores this webbrowser data in a browser settings database 204. A canonical formatreferred to herein is an intermediate format that provides a flexibleway for describing data and is understandable by various browsersettings modules including modules 212 and 224. Examples of thecanonical format may include the extension markup language (XML) format,the binary format, etc.

The browser settings database 204 stores web browser data for variousweb browsers. In an another embodiment, the browser settings database204 may be located on the client device 208 or 220. Alternatively, theweb browser data may be stored using a different storage means (e.g., afile on disk).

The importer 216 or 228 is responsible for importing, onto the webbrowser 210 or 222 respectively, web browser data pertaining to adifferent web browser. For example, the importer 216 may import webbrowser data pertaining to the web browser 222 onto the web browser 210.In one embodiment, if the web browser targeted for import supports onlya subset of web browser data pertaining to the source web browser, theimporter extracts the subset supported by the target web browser fromthe relevant web browser data stored in the database 204 and applies theextracted web browser data to the target web browser.

In one embodiment, the importer 216 or 228 can only import specific webbrowser data. The importer 216 or 228 may determine whether a webbrowser data item can be imported by comparing a data type tag assignedto the web browser data item by the exporter 214 or 226 with apredefined list of allowed data types. In one embodiment, if theimporter 216 or 228 encounters a web browser data item of an unknowntype, heuristics rules are utilized to determine how to handle this webbrowser data item.

In one embodiment, the browser settings module 212 or 224 displays anexport settings button and/or an import settings button as part of atoolbar or somewhere else within the browser window. When the userpresses the export settings button, the exporter 214 or 226 initiatesthe export of relevant web browser data. Similarly, when the userpresses the import settings button, the importer 216 or 228 initiatesthe import of desired web browser data.

Alternatively, the user may request export or import of browser settingsby selecting a specific option in a web browser window (e.g., byselecting an entry in Tools dropdown list) or somewhere else on thescreen (e.g., on the control panel, a separate application, etc.), orpressing a specific key on the keyboard, or using some other method.

In one embodiment, when a user issues a request to export/import webbrowser settings, the user is allowed to specify the desired settings.For example, once the user presses the export settings button, the useris presented with a list of settings that can be exported, from whichthe user can select some settings for exporting.

In another embodiment, the export occurs automatically (i.e., without auser request) at regular intervals (e.g., for a backup function).Similarly, the import may also occur automatically at regular intervals(e.g., to keep two computers synchronized).

Description of Process

FIG. 3 presents a flow diagram of one embodiment of a method 300 forexporting web browser data. The method may be performed by processinglogic, which may comprise hardware, software, or a combination of both.Processing logic may reside either in a client device, or partially orentirely in a separate device and/or system(s).

At block 302, processing logic receives a user request to export webbrowser data pertaining to a current web browser (referred to as thesource web browser). As discussed above, the web browser data mayinclude bookmarks, security settings, general settings, links todocuments accessed by a user, a home page, cookie settings, userinterface (UI) elements, intermediate files maintained by the webbrowser, etc. UI elements associated with the web browser may specify,for example, visibility of toolbars in the browser windows, positioningof toolbars within the browser window, visibility of buttons on atoolbar, positioning of buttons on the toolbar, color settings,background images, skins, themes, etc. Intermediate files maintained bythe web browser may include, for example, cached documents viewed by theuser, plug-in executable files (e.g., plug-ins for displaying differenttypes of audio and video messages), browsing history records, andvarious temporary files used by the web browser. In one embodiment,processing logic receives the user request when the user presses anexport settings button in the browser window. In one embodiment, theuser request specifies which browser settings need to be exported.Alternatively, the user request covers all web browser data pertainingto the source web browser.

At processing block 304, processing logic collects the web browser dataaccording to the user request.

At processing block 306, processing logic packages the collected webbrowser data into an intermediate format (e.g., an XML format, a binaryformat, etc.).

At processing block 308, processing logic stores the formatted webbrowser data in a browser settings data store. In one embodiment, thisdata store resides on the same client device as the source web browser.Alternatively, the browser settings data store resides on a server.

FIG. 4 presents a flow diagram of one embodiment of a method 400 forimporting web browser data. The method may be performed by processinglogic, which may comprise hardware, software, or a combination of both.Processing logic may reside either in a client device, or partially orentirely in a separate device and/or system(s).

At block 402, processing logic receives a user request to import webbrowser data onto a current web browser (referred to as the target webbrowser). In one embodiment, the user request identifies the source webbrowser whose data is to be imported onto the target web browser (e.g.,by identifying the instance of the web browser or the type of the webbrowser). In one embodiment, the user request specifies which browsersettings need to be imported. For example, the user may be presentedwith a list of available settings to allow the user to select thedesired settings. Alternatively, the user request covers all web browserdata pertaining to the source web browser.

The source web browser and the target web browser may reside on the sameclient device or different client devices and may be of the same browsertype or different browser types.

At block 404, processing logic retrieves web browser data pertaining tothe source web browser from a data store. In one embodiment, processinglogic retrieves the web browser data upon verifying that the targetimporter has permissions to access the web browser data. The data storemay reside on the same client device as the target web browser, on theclient device hosting the source web browser, or on a server. The webbrowser data is stored in the data store in an intermediate format(e.g., XML or binary format). In one embodiment, if the user requestspecifies certain browser settings to be imported, processing logicextracts the specified settings from the retrieved web browser data.

At block 406, processing logic maps the web browser data to propertiesof the target web browser. If the target web browser does not supportall of the available browser settings, processing logic discards theportion of web browser settings that is not supported by the target webbrowser.

At block 408, processing logic applies the mapped data to the target webbrowser.

Exemplary Computer System

FIG. 5 shows a diagrammatic representation of a machine in the exemplaryform of a computer system 500 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a personal computer(PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant(PDA), a cellular telephone, a web appliance, a network router, switchor bridge, or any machine capable of executing a set of instructions(sequential or otherwise) that specify actions to be taken by thatmachine. Further, while only a single machine is illustrated, the term“machine” shall also be taken to include any collection of machines thatindividually or jointly execute a set (or multiple sets) of instructionsto perform any one or more of the methodologies discussed herein.

The exemplary computer system 500 includes a processor 502 (e.g., acentral processing unit (CPU) a graphics processing unit (GPU) or both),a main memory 504 and a static memory 506, which communicate with eachother via a bus 508. The computer system 500 may further include a videodisplay unit 510 (e.g., a liquid crystal display (LCD) or a cathode raytube (CRT)). The computer system 500 also includes an alphanumeric inputdevice 512 (e.g., a keyboard), a cursor control device 514 (e.g., amouse), a disk drive unit 516, a signal generation device 518 (e.g., aspeaker) and a network interface device 520.

The disk drive unit 516 includes a machine-readable medium 522 on whichis stored one or more sets of instructions (e.g., software 524)embodying any one or more of the methodologies or functions describedherein. The software 524 may also reside, completely or at leastpartially, within the main memory 504 and/or within the processor 502during execution thereof by the computer system 500, the main memory 504and the processor 502 also constituting machine-readable media.

The software 524 may further be transmitted or received over a network526 via the network interface device 520.

While the machine-readable medium 522 is shown in an exemplaryembodiment to be a single medium, the term “machine-readable medium”should be taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” shall also be taken to include any medium thatis capable of storing, encoding or carrying a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present invention. The term“machine-readable medium” shall accordingly be taken to included, butnot be limited to, solid-state memories, optical and magnetic media, andcarrier wave signals.

The processes described above can be stored in a memory of a computersystem as a set of instructions to be executed. In addition, theinstructions to perform the processes described above couldalternatively be stored on other forms of machine-readable media,including magnetic and optical disks. For example, the processesdescribed could be stored on machine-readable media, such as magneticdisks or optical disks, which are accessible via a disk drive (orcomputer-readable medium drive). Further, the instructions can bedownloaded into a computing device over a data network in a form ofcompiled and linked version.

Alternatively, the logic to perform the processes as discussed abovecould be implemented in additional computer and/or machine readablemedia, such as discrete hardware components as large-scale integratedcircuits (LSI's), application-specific integrated circuits (ASIC's),firmware such as electrically erasable programmable read-only memory(EEPROM's); and electrical, optical, acoustical and other forms ofpropagated signals (e.g., carrier waves, infrared signals, digitalsignals, etc.); etc.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. It will, however,be evident that various modifications and changes may be made theretowithout departing from the broader spirit and scope of the invention asset forth in the appended claims. The specification and drawings are,accordingly, to be regarded in an illustrative rather than a restrictivesense.

1. A method performed by a client device, the method comprising:collecting, by one or more processors of the client device, browser dataassociated with a first web browser, without receiving a user request toexport the browser data, the collected browser data having a first dataformat, where the browser data includes one or more data items, the oneor more data items comprising at least one of user interface (UI)elements, security settings, general settings, browsing history data, orinformation specifying frequency and times of accessing documents,associated with the first web browser; transforming, by one or moreprocessors of the client device, in response to the collecting, thecollected browser data into an intermediate format, the first dataformat being different from the intermediate format, the intermediateformat comprising an extensible markup language (XML) format and beingunderstandable by the first web browser, where transforming the browserdata into the intermediate format comprises: assigning a tag to each ofthe one or more data items included in the collected browser data, thetag representing a data type of a corresponding data item; and storing,by one or more processors of the client device, the transformed browserdata for a subsequent import onto a second web browser, the second webbrowser utilizing browser data having a second data format, the seconddata format being different from the intermediate format and the firstdata format, the intermediate format being understandable by the secondweb browser.
 2. The method of claim 1 where the one or more data itemsfurther comprise at least one of bookmarks, a homepage, a cookie, links,cache data, temporary files, intermediate files maintained by the webbrowser, profile/autofill data, password data, input history data, popupblocker and white listed sites data, data identifying language andcharacter set, accessibility data, or a list of plug-ins.
 3. The methodof claim 1 where the first web browser and the second web browser areweb browsers of two different types.
 4. The method of claim 1 whereinthe first web browser resides on a first device and the second webbrowser resides on any one of the first device and a second device. 5.The method of claim 1 further comprising receiving a user request toexport browser data associated with a third web browser, the receiveduser request to export the browser data being received upon a useractivating a user interface element in a window controlled by the thirdweb browser, the user interface element being a button on a toolbarassociated with the third web browser.
 6. The method of claim 1 furthercomprising: receiving a user request to import the browser data onto thesecond web browser; and applying the transformed browser data to thesecond web browser.
 7. The method of claim 1 where the transformedbrowser data is stored on a server.
 8. A method performed by a clientdevice, the method comprising: receiving, by one or more processors ofthe client device, a user request to import browser settings of a firstweb browser, associated with another client device, onto a second webbrowser, associated with the client device, the browser settings of thefirst web browser being in a first data format, and the second webbrowser having browser settings in a second data format that isdifferent from the first data format; accessing, by one or moreprocessors of the client device, browser data, associated with thebrowser settings of the first web browser, that is stored, the browserdata being transformed from the first format into an intermediate formatprior to being stored, the intermediate format being different from thefirst data format and the second data format, and being understandableby the client device and the other client device, where the intermediateformat comprises an extensible markup language (XML) format, and wherethe intermediate format includes one or more data type tags assigned toone or more data items included in the browser data, in the firstformat, of the first web browser; comparing, by one or more processorsof the client device, the one or more data type tags to data typessupported by the second web browser; determining, by one or moreprocessors of the client device, based on the comparing, whether thesecond web browser supports a subset of the stored browser data in theintermediate format; extracting, by one or more processors of the clientdevice, and based on a result of the determining, at least a portion ofthe stored browser data; and importing, by one or more processors of theclient device, the extracted at least portion of the stored browser dataonto the browser settings of the second web browser.
 9. The method ofclaim 8 further comprising: determining that the second web browsersupports the subset of the stored browser data pertaining to the firstweb browser, where the extracting comprises: extracting, based on aresult of determining that the second web browser supports the subset ofthe stored browser data, the subset of browser data from the storedbrowser data, where the importing comprises: applying the extractedsubset of the stored browser data to the browser settings of the secondweb browser.
 10. The method of claim 8 where the one or more data itemsinclude at least one of bookmarks, a homepage, a cookie, links, userinterface (UI) elements, security settings, general settings, cachedata, temporary files, browsing history data, or a list of plug-ins. 11.The method of claim 8 where the first web browser and the second webbrowser are web browsers of two different types.
 12. The method of claim8 where the first web browser and the second web browser reside on twodifferent devices.
 13. The method of claim 8 further comprisingreceiving a user request to import browser data, the user request toimport browser data being received upon a user activating a userinterface element in a window controlled by the second web browser, theuser interface element being an import settings button provided on oneof a tool bar or a menu of the window.
 14. The method of claim 8 wherethe stored browser data is accessed from a server.
 15. An apparatuscomprising: means for collecting browser data pertaining to a first webbrowser, the browser data having a first data format; means fortransforming, based on the collecting, the browser data into anintermediate format, the first data format being different from theintermediate format, the intermediate format being understandable by thefirst web browser, where the intermediate format includes an extensiblemarkup language (XML) format, and where the means for transforming thebrowser data into the intermediate format comprises: means for assigninga plurality of tags to one or more data items included in the browserdata, one or more tags, of the plurality of tags, representing a datatype of a corresponding data item, the one or more data items comprisingat least one of user interface (UI) elements, browsing history data, orinformation associated with at least one of frequency or times ofaccessing documents; and means for storing the transformed browser datafor a subsequent import onto a second web, the second web browserutilizing browser data having a second data format, the second dataformat being different from the intermediate format and the first dataformat, the intermediate format being understandable by the second webbrowser, where the first web browser and the second web browser are webbrowsers of different types.
 16. An apparatus comprising: means forreceiving a user request to import browser settings of a first webbrowser onto a second web browser, the browser settings of the first webbrowser being in a first data format, and the second web browser havingbrowser settings in a second data format that is different from thefirst data format; means for accessing stored browser settingsassociated with the first web browser, the stored browser settings beingpreviously transformed into an intermediate format prior to beingstored, the intermediate format being different from the first andsecond data format, and being understandable by the first and second webbrowsers, where the intermediate format comprises an extensible markuplanguage (XML) format, and where the intermediate format includes one ormore data type tags assigned to data items included in the browsersettings of the first web browser; means for comparing the one or moredata type tags to data types supported by the second web browser; meansfor determining that the second web browser supports a subset of thestored browser settings, based on a result of the comparing; and meansfor importing, based on a result of the determining, the subset ofstored browser settings onto the second web browser.